/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.patpro.DAO;

import com.patpro.entidades.Estadoobra;
import com.patpro.entidades.Fuentefinanciamiento;
import com.patpro.entidades.Obras;
import com.patpro.entidades.Programacion;
import com.patpro.entidades.Tipocontrato;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 *
 * @author EVELIN
 */
public class ObrasDAO {
     
    private EntityManagerFactory emf;
    private EntityManager em;
   public ObrasDAO() {
          this.emf = Persistence.createEntityManagerFactory("web-sicopPU2");
        em=emf.createEntityManager();
    }
    
     public void closeEntityManager(){
    em.close();
    }
      public boolean insertarObra(Obras t){
    boolean b=false;
    
    try{
    em.getTransaction().begin();
    em.persist(t);
    em.getTransaction().commit();
    b=true;
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;
    }

    public List<Tipocontrato> getListaTipoContrato() {
        
        return em.createQuery("SELECT t FROM Tipocontrato t").getResultList();
     
       }
    
      public List<Programacion> getListaProgramacion() {
        
        return em.createQuery("SELECT t FROM Programacion t").getResultList();
     
       }
         public List<Estadoobra> getListaEstado() {
        
        return em.createQuery("SELECT t FROM Estadoobra t").getResultList();
     
       }
         public List<Fuentefinanciamiento> getListaFuenteFinanciamiento() {
        
        return em.createQuery("SELECT t FROM Fuentefinanciamiento t").getResultList();
     
       }

     public List<Obras> getListaObra(){
    return em.createQuery("SELECT o FROM Obras o").getResultList();
   

    } 
     
       public Tipocontrato buscarTipoContrato(String codigo) {
       Tipocontrato b=null;
    
    try{
        em.getTransaction().begin();
        Tipocontrato t=em.find(Tipocontrato.class,codigo);
       b= t;
        em.getTransaction().commit();
       
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;
    
    
    }

    public Estadoobra buscarEstadoobra(String IdEstadoobra) {
       Estadoobra b=null;
    
    try{
        em.getTransaction().begin();
        Estadoobra t=em.find(Estadoobra.class,IdEstadoobra);
       b= t;
        em.getTransaction().commit();
       
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;}

    public Fuentefinanciamiento buscarFuentefinanciamiento(String IdFuentefinanciamiento) {
        Fuentefinanciamiento b=null;
    
    try{
        em.getTransaction().begin();
        Fuentefinanciamiento t=em.find(Fuentefinanciamiento.class,IdFuentefinanciamiento);
       b= t;
        em.getTransaction().commit();
       
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;
    }

    public Programacion buscarProgramacion(String IdProgramacion) {
          Programacion b=null;
    
    try{
        em.getTransaction().begin();
        Programacion t=em.find(Programacion.class,IdProgramacion);
       b= t;
        em.getTransaction().commit();
       
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b; 
    }

    public boolean eliminarObra(String codigo) {
     boolean b=false;
    
    try{
        em.getTransaction().begin();
        Obras t=em.find(Obras.class,codigo);
        em.remove(t);
        em.getTransaction().commit();
        b=true;
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;   }

    public List<Obras> getListaObras(String trab){
       
    return em.createQuery( "Select t from Obras t where t.idEstado='"+trab+"'").getResultList();
  
      }

  public List<Obras> getObras(String trab){
       
    return em.createQuery( "Select t from Obras t where t.idExpediente='"+trab+"'").getResultList();
  
      }

    public boolean ModificarObra(Obras t) {
        boolean b=false;
    
    try{
    em.getTransaction().begin();
   Obras o=em.find(Obras.class,t.getIdExpediente());
   em.remove(o);
   em.persist(t);
    em.getTransaction().commit();
    b=true;
    
    
    }catch(Exception e){
    
    em.getTransaction().rollback();
    }
    return b;
    }

}
